package cn.b.sky.mes.cm.service;

import java.util.List;

import cn.b.sky.mes.cm.model.WorkDayPeriod;
import cn.b.sky.mes.cm.model.WorkDayType;
import cn.b.sky.mes.cm.model.condition.WorkDayTypeCondition;
import cn.b.sky.common.model.BatchJobReport;

/**
 * 
 * <strong>Title : WorkDayTypeService.java<br></strong>
 * <strong>Package : cn.b.sky.mes.cm.service<br></strong>
 * <strong>Description : </strong>工作日类型业务接口<br> 
 * <strong>Create on : 2016-1-8 下午02:00:50<br></strong>
 * <p>
 * @author zhaoxin01<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface WorkDayTypeService {
  /**
   * 
   * <strong>Title : selectWorkDayTypeByCondition<br></strong>
   * <strong>Description : </strong>分页查询工作日类型<br> 
   * <strong>Create on : 2016-1-8 下午01:51:14<br></strong>
   * <p>
   * @param workDayTypeCondition
   * @return
   * List<WorkDayType>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WorkDayType> selectWorkDayTypeByCondition(WorkDayTypeCondition workDayTypeCondition);

  /**
   * 
   * <strong>Title : selectWorkDayTypeCount<br></strong>
   * <strong>Description : </strong>查询工作日类型条数<br> 
   * <strong>Create on : 2016-1-8 下午01:52:04<br></strong>
   * <p>
   * @param workDayTypeCondition
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectWorkDayTypeCount(WorkDayTypeCondition workDayTypeCondition);

  /**
   * 
   * <strong>Title : selectWorkDayType<br></strong>
   * <strong>Description : </strong>根据编号查询工作日类型<br> 
   * <strong>Create on : 2016-1-8 下午03:00:08<br></strong>
   * <p>
   * @param siteCode
   * @param dayTypeCode
   * @return
   * WorkDayType
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  WorkDayType selectWorkDayType(String siteCode, String dayTypeCode);

  /**
   * 
   * <strong>Title : insertWorkDayType<br></strong>
   * <strong>Description : </strong>新增工作日类型<br> 
   * <strong>Create on : 2016-1-11 上午10:05:05<br></strong>
   * <p>
   * @param workDayType
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertWorkDayType(WorkDayType workDayType);

  /**
   * 
   * <strong>Title : updateWorkDayType<br></strong>
   * <strong>Description : </strong>更新工作日类型<br> 
   * <strong>Create on : 2016-1-11 上午10:12:34<br></strong>
   * <p>
   * @param workDayType
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateWorkDayType(WorkDayType workDayType);

  /**
   * 
   * <strong>Title : selectWorkDayPeriodByWorkDay<br></strong>
   * <strong>Description : </strong>@方法注释说明写在此处@<br> 
   * <strong>Create on : 2016-1-11 下午05:13:21<br></strong>
   * <p>
   * @param siteCode
   * @param dayTypeCode
   * @return
   * List<WorkDayPeriod>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WorkDayPeriod> selectWorkDayPeriodByWorkDay(String siteCode, String dayTypeCode);

  /**
   * 
   * <strong>Title : deleteWorkDayType<br></strong>
   * <strong>Description : </strong>删除工作日类型<br> 
   * <strong>Create on : 2016-1-11 下午05:57:19<br></strong>
   * <p>
   * @param siteCode
   * @param dayTypeCode
   * @return
   * BatchJobReport
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteWorkDayType(String siteCode, String dayTypeCode);

  /**
   * 
   * <strong>Title : selectUnLockWorkDayTypeList<br></strong>
   * <strong>Description : </strong>查询所有未锁定工作日类型<br> 
   * <strong>Create on : 2016-1-12 下午05:20:06<br></strong>
   * <p>
   * @param siteCode
   * @return
   * List<WorkDayType>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WorkDayType> selectUnLockWorkDayTypeList(String siteCode);

  /**
   * 
   * <strong>Title : selectWorkDayPeriods<br></strong>
   * <strong>Description : </strong>查询所有工作日类型的工作时段<br> 
   * <strong>Create on : 2016年3月11日 下午1:43:32<br></strong>
   * <p>
   * @param siteCode
   * @return
   * List<WorkDayType>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人  | 修改日期  | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WorkDayPeriod> selectWorkDayPeriods(String siteCode);

  /**
   * 
   * <strong>Title : selectWorkDayPeriodsByWorkcenterAndDate<br></strong>
   * <strong>Description : </strong>根据工作中心及日期查询工作时段<br> 
   * <strong>Create on : 2016年3月28日 下午4:54:12<br></strong>
   * <p>
   * @param siteCode
   * @param workcenterCode
   * @param date
   * @return
   * List<WorkDayPeriod>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WorkDayPeriod> selectWorkDayPeriodsByWorkcenterAndDate(String siteCode, String workcenterCode, String date);
}
